Thema Datum  Von Nutzer Rating
Antwort
Rot VBA | Spalte von Excel nach Word kopieren
18.09.2017 16:03:03 Sven
NotSolved
25.09.2017 08:31:11 Sven
NotSolved

Ansicht des Beitrags:
Von:
Sven
Datum:
18.09.2017 16:03:03
Views:
1011
Rating: Antwort:
  Ja
Thema:
VBA | Spalte von Excel nach Word kopieren

Hallo zusammen,
ich kopiere mittels VBA aus einem Excel-Dokument Werte zu Textmarken in einem Word-Dokument. Das klappt soweit mit einzelnen Zellen auch problemlos. Nun habe ich im Excel-Dokument aber keinen einzelnen Wert, sondern eine Tabelle und würde dort gerne eine komplette Spalte kopieren und nicht jede Zelle einzeln ansprechen. Diesen Bereich würde ich auch gerne komplett in eine Tabelle im Word-Dokument einfügen. Ich verwende geschlossene Textmarken und diese sollen nach dem Kopiervorgang auch erhalten werden. Folgender Code funktioniert soweit super. Es werden einzelne Zellen kopiert und die Textmarken nach dem Kopiervorgang wieder eingefügt:

Sub Aufruf_ReplaceBookmarkText()
strPathAndFile = "PFAD“
Set xlAppl = CreateObject("Excel.Application")
Set xlWbk = xlAppl.Workbooks.Open(FileName:=strPathAndFile)
Set xlWksTest = xlWbk.Worksheets("Test")
fkt_ReplaceBookmarkText ActiveDocument, "EZE1", xlWksTest.Range("B5")
end sub

Function fkt_ReplaceBookmarkText(oDoc As Document, strBMName As String, strBMText As String)
Dim rng As Range
If oDoc.Bookmarks.Exists(strBMName) Then
    Set rng = oDoc.Bookmarks(strBMName).Range
    rng.Text = strBMText
    oDoc.Bookmarks.Add strBMName, rng
    Set rng = Nothing
End If
End Function

Meine Idee war es nun, dass ich den Bereich im Word-Dokument mit Hilfe zweier Textmarken bestimme und dort die Spalte aus Excel einfüge. Die erste Textmarke ist die oberste Zelle der Spalte und die zweite Textmarke ist die unterste Zelle der gleichen Spalte.

fkt_ReplaceBookmarkTextRange ActiveDocument, "SpalteOben", "SpalteUnten"

Function fkt_ReplaceBookmarkTextRange(oDoc As Document, strBMName1 As String, strBMName2 As  _
String)

Dim rng1 As Range, rng2 As Range
Dim xlAppl As Object 'Excel.Application
Dim xlWbk As Object  'Excel.Workbook
Dim xlWks As Object  'Excel.Worksheet

'Pfad anpassen
strPathAndFile = "PFAD“
Set xlAppl = CreateObject("Excel.Application")
Set xlWbk = xlAppl.Workbooks.Open(FileName:=strPathAndFile)
xlAppl.Visible = False

Set xlWksTest = xlWbk.Worksheets("Test")

If oDoc.Bookmarks.Exists(strBMName1) Then
    Set rng1 = oDoc.Bookmarks(strBMName1).Range
    Set rng2 = oDoc.Bookmarks(strBMName2).Range
    xlWksTest.Range("B175:B191").Copy 'Kopiervorgang der Spalte aus Excel
    oDoc.Range(rng1.Start, rng2.End).Paste 'Einfügen in den Bereich im Word-Dokument
    oDoc.Bookmarks.Add Name:=strBMName2, Range:=rng2
    Set rng1 = Nothing
    Set rng2 = Nothing
End If
End Function

Mit dieser Funktion wird der gewünschte Bereich kopiert und eingefügt, aber die Textmarke „SpalteUnten“ befindet sich nicht mehr an der gleichen Position, sondern im Word-Dokument in einer anderen Zelle.

Bin für jeden Vorschlag dankbar und mir irgendwie auch sicher, dass es bestimmt eine elegantere Lösung für mein Problem gibt.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot VBA | Spalte von Excel nach Word kopieren
18.09.2017 16:03:03 Sven
NotSolved
25.09.2017 08:31:11 Sven
NotSolved